package com.gpframework.module.wages.domain.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.common.annotation.Excel;
import com.gpframework.module.wages.domain.GzWarehousePersonnel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import javax.validation.constraints.*;

import java.util.Date;
import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName GzWarehousePersonnelAdd
 * @Author gpframework
 * @Date 2024-01-22
 * @Version 1.0.0
 * @Description 仓库工资条Add对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class GzWarehousePersonnelAdd {
    private static final long serialVersionUID = 1L;

    /** 月份 */
    @JsonFormat(pattern = "yyyy-MM")
    @ApiModelProperty("月份")
    private Date month;
    @Excel(name = "是否上报", width = 30)
    @ApiModelProperty("是否上报")
    private Long escalation;
    @Excel(name = "审核及批准", width = 30)
    @ApiModelProperty("审核及批准")
    private Long examineAndApprove;
    @Excel(name = "是否打印", width = 30)
    @ApiModelProperty("是否打印")
    private Long print;
    /** 部门 */
    @ApiModelProperty("部门")
    private String departmentName;

    /** 员工id */
    @ApiModelProperty("员工id")
    private Long userId;

    /** 名字 */
    @ApiModelProperty("名字")
    private String name;

    /** 基本工资 */
    @ApiModelProperty("基本工资")
    private BigDecimal baseSalary;

    /** 岗位工资 */
    @ApiModelProperty("岗位工资")
    private BigDecimal postWage;

    /** 管理津贴 */
    @ApiModelProperty("管理津贴")
    private BigDecimal managementAllowance;

    /** 住房津贴 */
    @ApiModelProperty("住房津贴")
    private BigDecimal houseAllowance;

    /** 社保补贴 */
    @ApiModelProperty("社保补贴")
    private BigDecimal socialSecuritySubsidies;

    /** 绩效奖金 */
    @ApiModelProperty("绩效奖金")
    private BigDecimal achievementBonus;

    /** 评定奖金 */
    @ApiModelProperty("评定奖金")
    private String evaluateBonus;

    /** 应出勤天数 */
    @ApiModelProperty("应出勤天数")
    private BigDecimal requiredAttendanceDays;

    /** 实际出勤天数 */
    @ApiModelProperty("实际出勤天数")
    private BigDecimal attendanceDays;

    /** 出勤基本工资 */
    @ApiModelProperty("出勤基本工资")
    private BigDecimal attendanceSalary;

    /** 出勤岗位工资 */
    @ApiModelProperty("出勤岗位工资")
    private BigDecimal attendancePositionSalary;

    /** 出勤管理津贴 */
    @ApiModelProperty("出勤管理津贴")
    private BigDecimal attendanceManagementAllowance;

    /** 出勤住房津贴 */
    @ApiModelProperty("出勤住房津贴")
    private BigDecimal attendanceHousingAllowance;

    /** 出勤社保补贴 */
    @ApiModelProperty("出勤社保补贴")
    private BigDecimal attendanceSocialSecuritySubsidy;

    /** 月度绩效奖金 */
    @ApiModelProperty("月度绩效奖金")
    private BigDecimal monthlyPerformanceBonus;

    /** 月度评定奖金 */
    @ApiModelProperty("月度评定奖金")
    private String monthlyEvaluationBonus;

    /** 加班工资 */
    @ApiModelProperty("加班工资")
    private BigDecimal overtimePay;

    /** 全勤奖 */
    @ApiModelProperty("全勤奖")
    private BigDecimal fullAttendanceAward;

    /** 工龄奖 */
    @ApiModelProperty("工龄奖")
    private BigDecimal serviceExperienceAward;

    /** 其他补贴 */
    @ApiModelProperty("其他补贴")
    private BigDecimal otherSubsidies;

    /** 违纪赔偿 */
    @ApiModelProperty("违纪赔偿")
    private BigDecimal compensateFor;

    /** 餐费扣款 */
    @ApiModelProperty("餐费扣款")
    private BigDecimal mealFeeDeduction;

    /** 补贴/社保个人部分 */
    @ApiModelProperty("补贴/社保个人部分")
    private BigDecimal subsidy;

    /** 合计 */
    @ApiModelProperty("合计")
    private BigDecimal amountTo;

    /** 工资实发 */
    @ApiModelProperty("工资实发")
    private BigDecimal actualSalaryPaid;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remarks;

    /** 排序 */
    @ApiModelProperty("排序")
    private Long sort;

    @ApiModelProperty("仓库工资条列表")
    private List<GzWarehousePersonnel> gzWarehousePersonnelList;
}
